package com.zb.service;

import java.util.List;

import com.zb.common.exception.BusinessException;
import com.zb.common.po.model.Menu;
import com.zb.common.po.model.Role;
import com.zb.common.po.query.RoleQuery;
import com.zb.common.utils.PaginationResult;

public interface RoleService {
    /**
     * 保存角色 saveRole:(这里用一句话描述这个方法的作用)
     * 
     * @author luohaili
     * @param role
     * @param menuIds
     * @since JDK 1.7
     */
    public void saveRole(Role role, Integer[] menuIds) throws BusinessException;

    /**
     * 查询角色下的菜单，包括选择的和没选择的 findRole2MenuByRoleId:(这里用一句话描述这个方法的作用)
     * 
     * @author luohaili
     * @param roleId
     * @return
     * @since JDK 1.7
     */
    public List<Menu> findRole2MenuByRoleId(Integer roleId);

    /**
     * getRoleById:(通过角色ID获取角色)
     * 
     * @author luohaili
     * @param roleId
     * @return
     * @throws BusinessException
     * @since JDK 1.7
     */
    public Role getRoleById(Integer roleId) throws BusinessException;

    public PaginationResult<Role> findRolesbyPage(RoleQuery query);

    public List<Role> findAllRoles(RoleQuery query);

    /**
     * 批量删除角色 deleteRoleBatch:(这里用一句话描述这个方法的作用)
     * 
     * @author luohaili
     * @param idsArray
     * @since JDK 1.7
     */
    public void deleteRoleBatch(String[] idsArray) throws BusinessException;

}
